#include <stdio.h>

// 希尔排序函数

void bubbleSort(int arr[],int n)
{
    int mid;
    int j,temp;
    for(mid=n/2;mid>=1;mid=mid/2)
    {
        for(int i=mid;i<n;i++)
        {
            temp=arr[i];
            j=i;
            while(j>=mid&&arr[j-mid]>temp)
            {
                arr[j]=arr[j-mid];
                j=j-mid;

            }
            arr[j]=temp;
//            printf("排序后的数组: \n");
//            printArray(arr, n);
        }
    }
}

// 打印数组元素的函数
void printArray(int arr[], int size) {
    int i;
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    printf("排序前的数组: \n");
    printArray(arr, n);
    // 调用冒泡排序函数对数组进行排序
    bubbleSort(arr, n);
    printf("排序后的数组: \n");
    printArray(arr, n);
    return 0;
}    